package sid

import (
	"fmt"
	"math/rand"
	"strconv"
	"time"
)

// GenerateUnique11DigitNumber 生成一个由9位时间戳后缀和两位随机数（10-99）组成的11位唯一数字
func GenerateUnique11DigitNumber() string {
	// 获取当前时间的Unix时间戳（秒为单位）
	timestamp := time.Now().Unix()

	// 取时间戳的后10位（注意这里取10位而非9位）
	timestampMod := int(timestamp % 10_000_000_000)

	// 生成一个0到8之间的随机数（注意这里改为个位数）
	randomNumber := rand.Int63n(10)

	// 组合数字，此时最多为10位数字加上1位随机数字
	uniqueNumber := strconv.FormatInt(int64(timestampMod), 10) + strconv.FormatInt(randomNumber, 10)

	// 确保字符串长度为11位，如果uniqueNumber不足11位则前面补0
	return fmt.Sprintf("%11s", uniqueNumber)
}
